﻿<!DOCTYPE html>
<html class="theme theme-white">
<head>
<meta charset="utf-8">
<title>redis学习---redis简介</title>
<link href="https://www.zybuluo.com/static/assets/template-theme-white.css" rel="stylesheet" media="screen">
<style type="text/css">

#wmd-preview h1  {
    color: #0077bb; /* 将标题改为蓝色 */
}</style>
</head>
<body class="theme theme-white">
<div id="wmd-preview" class="wmd-preview wmd-preview-full-reader"><div class="md-section-divider"></div><div class="md-section-divider"></div><h1 data-anchor-id="n5fo" id="redis学习-redis简介">redis学习---redis简介</h1><div class="md-section-divider"></div><h2 data-anchor-id="hd77" id="目录">目录</h2><ul data-anchor-id="l7yz">
<li>简介</li>
<li>按照</li>
<li>多数据支持</li>
<li>存储结构</li>
<li>应用场景</li>
<li>命令参考文档</li>
</ul><div class="md-section-divider"></div><h2 data-anchor-id="pyvs" id="1-简介">1. 简介：</h2><p data-anchor-id="2mrw">Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库，它提供了Java，C/C++，C#，PHP，JavaScript，Perl，Object-C，Python，Ruby，Erlang等客户端，使用很方便。</p><div class="md-section-divider"></div><h2 data-anchor-id="iefa" id="2-安装">2. 安装</h2><p data-anchor-id="vlba"><strong>下载地址</strong>：<a href="http://download.redis.io/releases/redis-4.0.10.tar.gz" target="_blank">http://download.redis.io/releases/redis-4.0.10.tar.gz</a> <br>
<strong>安装命令:</strong> <br>
 1. tar -zxvf 安装包 <br>
 2. 在redis目录下 执行 make <br>
 3. 修改redis.conf   daemonize =yes</p><p data-anchor-id="k9f9"><strong>启动命令：</strong>  ./redis-server ../redis.conf <br>
<strong>停止命令：</strong>  ./redis-cli shutdown <br>
<strong>连接命令：</strong>  ./redis-cli -h 127.0.0.1 -p 6379</p><div class="md-section-divider"></div><h2 data-anchor-id="bp2p" id="3-多数据支持">3. 多数据支持</h2><ul data-anchor-id="kh8g">
<li>默认16个数据库，从0开始到15，可以通过redis.conf的databases 16修改</li>
<li>只有单机才有，集群没有这个概念</li>
<li>不支持自定义数据库名称，就是数字0-15</li>
<li>每个数据库不能单独设置授权</li>
<li>不同数据库数据不可见</li>
<li>默认都是自动选择0号数据库，不过可以通过select 1切换数据库</li>
<li>每个数据库之间并不是完全隔离的。 可以通过flushall命令清空redis实例面的所有数据库中的数据</li>
</ul><div class="md-section-divider"></div><h2 data-anchor-id="fn28" id="4-存储结构">4. 存储结构</h2><ul data-anchor-id="4z77">
<li>字符类型</li>
<li>列表类型</li>
<li>散列类型</li>
<li>集合类型</li>
<li>有序集合</li>
</ul><div class="md-section-divider"></div><h2 data-anchor-id="cu44" id="5-应用场景">5. 应用场景</h2><div class="md-section-divider"></div><h3 data-anchor-id="9ecc" id="51-缓存-热数据">5.1 缓存-热数据：</h3><p data-anchor-id="mph3">热点数据（经常会被查询，但是不经常被修改或者删除的数据）</p><div class="md-section-divider"></div><h3 data-anchor-id="iiky" id="52-计数器">5.2 计数器</h3><p data-anchor-id="t86l">诸如统计点击数等应用。由于单线程，可以避免并发问题，保证不会出错，而且100%毫秒级性能，操作完成记得持久化，不然只保存在内存中。 <br>
命令：INCRBY</p><div class="md-section-divider"></div><h3 data-anchor-id="ds4w" id="53-消息队列">5.3 消息队列</h3><p data-anchor-id="xgwt">相当于消息系统，ActiveMQ，RocketMQ等工具类似</p><div class="md-section-divider"></div><h3 data-anchor-id="5uah" id="54-分布式锁与单线程机制">5.4 分布式锁与单线程机制</h3><ul data-anchor-id="blh4">
<li>分布式锁：SETNX key value key只能设置一次，如果已经存在不能进行设置</li>
<li>秒杀系统：基于redis是单线程特征，防止出现数据库“爆破”</li>
<li>全局增量ID生成，类似“秒杀”</li>
</ul><div class="md-section-divider"></div><h2 data-anchor-id="6p73" id="6-命令参考文档">6. 命令参考文档</h2><p data-anchor-id="uclp"><a href="http://redisdoc.com/" target="_blank">http://redisdoc.com/</a></p><hr></div>
</body>
</html>